import { reqCategoryList, Banner, Floor } from '../../api/index.js' // 导入ajax数据源

// 提供唯一数据源，所有数据放在这里
const state = {
  count: 0,
  HomeList: [],
  bannerList: [],
  floorList: [],

  // 面包屑 初始状态
  breadcrumb: [
    {
      path: '',
      categoryName: 'buf,别管',
      categoryId: ''
    }
  ]
}
// 发生变更的数据
const mutations = {
  // 三级菜单接口数据
  HomeListAjax(state, list) {
    state.HomeList = list.slice(0, 15)
  },

  // home 轮播图接口
  MockBanner(state, list) {
    state.bannerList = list
  },

  // home 楼层接口
  mockFloor(state, list) {
    state.floorList = list
  },
  // 点击 菜单导航处理面包屑
  Breadcrumb(state, val) {
    // state.ActiveList.findIndex 遍历该组 如果 val.name 不存在与数组 返回 -1
    // if (val.path !== '/home') {
    const result = state.breadcrumb.findIndex((item) => item.path === val.path)

    if (result === -1) {
      console.log('不存在')
      state.breadcrumb.push(val)
    } else {
      console.log('存在')
    }
  }
}
// 所有的异步操作在这个方法调用 例如定时器 1s后才改变数据
const actions = {
  // 发起 home 页面 列表的 ajax 数据请求
  // 因为ajax是异步操作还要执行 mutations 节点下的HomeListAjax函数

  // home 三级菜单接口数据
  async HomeListAjax(state) {
    let result = await reqCategoryList()
    if (result.code === 200) {
      state.commit('HomeListAjax', result.data)
    }
  },

  // home 轮播图的接口数据
  async mockBanner(state) {
    let result = await Banner()
    // console.log(result)
    if (result.state === 200) {
      state.commit('MockBanner', result.data)
    }
  },

  // // home 楼层的接口数据
  async mockFloor(state) {
    let result = await Floor()
    // console.log(result)
    if (result.state === 200) {
      state.commit('mockFloor', result.data)
    }
    console.log(11)
  }
}
// 计算属性节点
const getters = {
  // breadcrumb(state) {
  //   //
  //   return state.HomeList
  // }
}

// 向外共享函数
export default {
  state,
  mutations,
  actions,
  getters
}
